package cn.edu.wynu.demo;

import org.w3c.dom.ls.LSOutput;

// （二）电影操作类，要处理多部电影信息，所以使用数组来存储。
public class MovieOperator{
    // 1.电影操作类，要处理多部电影信息，所以使用数组来存储。
    private Movie[] movies; // 装有电影对象的数组，电影数量不确定。

    // 2.为了方便接收要处理的电影数据，使用有参构造器
    public MovieOperator(Movie[] movies){ // 接收电影数组
        this.movies = movies; // 接收电影数组

    }

    /**3.两个需求，一个是展示电影信息，另一个是根据电影编号id，查找电影信息，
     * 所以可以设计两个方法，第一个是展示所有电影信息，第二个是根据电影编号查找电影信息。
     * */

    // (1)展示所有电影信息，movies = [m1, m2, m3, m4]
    public void printAllMovies(){
        System.out.println("-----以下为所有的电影信息:-----");
        // 遍历数组，输出电影信息
        for (int i = 0; i < movies.length; i++) {
            Movie m = movies[i];
            System.out.println("编号：" + m.getId());
            System.out.println("名称：" + m.getName());
            System.out.println("价格：" + m.getPrice());
            System.out.println("------------------------------------------------");
        }
    }

    // (2)根据电影编号查找电影信息并展示
    public void searchMovieById(int id){
        // 遍历数组，找到id相同的电影，然后输出电影信息
        for(int i = 0; i < movies.length; i++){
            Movie m = movies[i];
            if(m.getId() == id){
                System.out.println("以下为该电影信息:");
                System.out.println("编号：" + m.getId());
                System.out.println("名称：" + m.getName());
                System.out.println("价格：" + m.getPrice());
                System.out.println("评分：" + m.getScore());
                System.out.println("导演：" + m.getDirector());
                System.out.println("主演：" + m.getActor());
                System.out.println("简介：" + m.getInfo());
                return; // 找到就返回，不用再继续遍历了
            }
        }
        System.out.println("没有该编号的电影信息");
    }
}
